﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Synchronization;
using SyncLib.Data;
using System.Data.SqlClient;
using Microsoft.Synchronization.Data;
using System.ServiceModel;

namespace SyncLib.Interface
{
    public interface IKeeperSync
    {

        NextAction Initialize(ScopeInfoEx scope, SyncProviderPosition position, out string message);
        NextAction PrepareSync(out string message);
        NextAction BeginSync(out string message);
        RelationalSyncProvider Provider { get; }
        KSyncStatistics SyncStatistics { get; set; }
        SyncContext Context { get; set; }
        ProxyInfo<ISyncManager> ProxyInfo { get; set; }
        void Synchronize();
        void EndSync();
        int Type { get; set; }
        Guid ClientId { get; set; }
        //object DownLoadDependencyData(string key, SyncContext context);
        //void UploadDependencyData(object batch);

        //RelationalSyncProvider ProxyProvider { get; }
    }


}
